import snowflake.client
from utils.myredis import myredis


class XueHua:
    def update_linux_time(self):
        # 同步服务器时间
        pass

    def getsnowcode(self):
        ncode = snowflake.client.get_guid()
        # 从redis中查询，如果存在转成int和code对比
        code = myredis.get_str('snowcode')
        if code:
            if int(ncode) <= int(code):
                number = myredis.get_str("number")
                if number:
                    myredis.incre('number', 1)
                else:
                    myredis.set_str("number", 1)
                if number > 3:
                    # 执行脚本
                    self.update_linux_time()

                return self.getsnowcode()
        # 如果正确返回，如果发生回拨调用自己重新生成
        myredis.set_str('snowcode', ncode)
        return ncode


xue = XueHua()
